package com.epalmpay.service.withdraw;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.epalmpay.bean.BatchPayAddInDTO;
import com.epalmpay.bean.BatchPayInfoBean;
import com.epalmpay.exception.ApplicationException;
import com.epalmpay.dto.batchpay.BatchOrderInfoOutDTO;
import com.epalmpay.dto.batchpay.BatchPayInDTO;
import com.epalmpay.dto.batchpay.BatchPayInfoInDTO;
import com.epalmpay.dto.system.BaseOutDTO;
import com.epalmpay.entity.BatchPayInfo;
import com.epalmpay.entity.BatchPayRecords;
import com.epalmpay.entity.Page;


public interface IBatchPayService {

	/**
	 * 查询批量代付的记录
	 * @param userId
	 * @param pageNumber
	 * @param i
	 * @param batchNo
	 * @param datefrom
	 * @param dateto
	 * @return
	 */
	
	public  List<BatchPayRecords>  batchPayList(BatchPayInDTO batchPayIn,Page page) ;
	/**
	 * 添加批量代付
	 * @param batchPayRecords
	 * @return
	 */
	public int doAddBatchPay(BatchPayAddInDTO batchPayIn,HttpServletRequest request) throws Exception;
	
	public  List<BatchPayInfoBean>  batchPayInfoList(BatchPayInDTO batchPayInDTO ,Page page);
	
	public BatchOrderInfoOutDTO findBatchOrderInfo(Long orderId)throws Exception;
	
	public int finishSinglePay(BatchPayInfoInDTO batchPayIn )throws ApplicationException ;
	
	public BaseOutDTO finishBatchPay(BatchPayInDTO batchPayIn) throws ApplicationException;
	
	public BatchPayRecords findBatchPayRecord(Long batchPayId);
	
	
	public BaseOutDTO finishsynBatchRecord(BatchPayInDTO batchPayIn);
	
	public BaseOutDTO finishUpdatePayInfo(BatchPayInfoInDTO batchPayIn);
	
	public BatchPayInfo findSinglePayInfo(Long batchPayInfoId);
	
	public BaseOutDTO finishSycPayResult(Long batchPayInfoId);
	
	public List<BatchPayInfoBean> batchRepayList(BatchPayInDTO batchPayIn);

	
}
